package hyl.base.flow.express;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.alibaba.fastjson.JSONObject;

public class Result {
	//不同的结果 ，不同的状态赋值
	Map<String, ResultItem> result2 = new HashMap<>();
	ResultItem result1;
	//select =1 表示 结果不可以分组; =2表示结果可以分组,不同结果 的结果值
	int select = 1;
	public Result(Object o, Character defchar) {
		if (o instanceof String) {
			// System.out.println(o.toString());
			select = 1;
			result1 = new ResultItem(o.toString(), defchar);
		} else if (o instanceof JSONObject) {
			JSONObject o1 = (JSONObject) o;
			select = 2;
			for (Entry<String, Object> it : o1.entrySet()) {
				String s = (String) it.getValue();
				result2.put(it.getKey(), new ResultItem(s, defchar));
			}
		}
	}

	/**
	 * result 运行时的返回结果
	 */
	public Map<String, Character> getResult(String result) {
		if (select == 1) {
			return result1.getValues(); // 根据结果标记状态集合中的相应 状态
		} else if (select == 2) {
			if (result == null)
				return null;
			ResultItem r = result2.get(result);
			if (r == null)
				return null;
			return r.getValues();// 根据返回的结果,标记状态集合中的相应状态
		}
		return null;
	}

	public Map<String, Character>  getValues(String result) {
		if (select == 1) {
			return result1.getValues();
		} else if (select == 2) {
			if (result == null)
				return null;
			return result2.get(result).getValues();
		}
		return null;
	}

}
